//
// Created on 2024/11/25.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef OHOS_DEMO_RTC_CLIENT_INTERFACE_H
#define OHOS_DEMO_RTC_CLIENT_INTERFACE_H

#include "rtc_client/rtc_wrapper.h"
#include "api/video/video_render_interface.h"

namespace ohosrtc {

class RTCClientInterface {
  //connect to calling room
  public:
    virtual void Connect(const RoomConnectionParameters &params) = 0;
    //disconnect to calling room
    virtual void Disconnect() = 0;
    // set remote render for video track to attach
	  virtual void SetRemoteRender(std::shared_ptr<webrtc::VideoRenderInterface> render) = 0;
    // set remote render for camera track to attach
    virtual void SetLocalRender(std::shared_ptr<webrtc::VideoRenderInterface> render) = 0;
	  virtual void Hangup() = 0;
    virtual void SetHangupCallback(std::function<void()> callback) = 0;
    // StartScreenCast by ohos
    virtual void StartScreenCast() = 0;
    virtual void StopScreenCast() = 0;
    // FlipCamera by ohos
	  virtual void FlipCamera(bool is_front) = 0;
    virtual void MuteMic() = 0;
    virtual void UnMuteMic() = 0;
};
}

#endif //OHOS_DEMO_RTC_CLIENT_INTERFACE_H
